package com.lxl.bt.util;

import android.text.InputFilter;
import android.text.Spanned;
import android.text.TextUtils;

/**
 * Create by lvxinlong  229608356@qq.com
 * desc输入框限制输入最大值
 * on 2020年5月18日16:22:00
 **/
public class InputFilterIntegerMinMax implements InputFilter {
    private float min, max;

    public InputFilterIntegerMinMax(float min, float max) {
        this.min = min;
        this.max = max;
    }

    public InputFilterIntegerMinMax(String min, String max) {
        this.min = Float.valueOf(min);
        this.max = Float.valueOf(max);
    }
/**
 * @param source 输入的文字
 * @param start 输入-0，删除-0
 * @param end 输入-source文字的长度，删除-0
 * @param dest 原先显示的内容
 * @param dstart 输入-原光标位置，删除-光标删除结束位置
 * @param dend  输入-原光标位置，删除-光标删除开始位置
 * @return
 */

    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        try {
            //限制小数点位数
            if (source.equals(".")) {
                return "";
            }
            if (this.min!=0&&source.equals("0")&& dest.toString().length() == 0) {
                return "";
            }
            if (dest.toString().contains(".")) {
                    return "";
            }
            //限制大小
            float input = Float.valueOf(dest.toString() + source.toString());
            if (isInRange(min, max, input))
                return null;
        } catch (Exception nfe) { }
        return "";
    }

    private boolean isInRange(float a, float b, float c) {
        return b > a ? c >= a && c <= b : c >= b && c <= a;
    }


    public  static  String getUnitName(String num){
        if(TextUtils.isEmpty(num))
            return "";
        double d=0;
        try{
        d=Double.valueOf(num);
        }catch (Exception e){
            return "";
        }

        if(d>1000000000){
            return "| 十亿";
        } else if(d>100000000){
            return "| 亿";
        }else if(d>10000000){
            return "| 千万";
        }else if(d>1000000){
            return "| 百万";
        }else if(d>100000){
            return "| 十万";
        }else if(d>10000){
            return "| 万";
        }else if(d>1000){
            return "| 千";
        }else if(d>100){
            return "| 百";
        }else {
            return "";
        }
    }
}

